import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 /**
 * 处理bean的对象定义
 * @see org.springframework.beans.factory.config.BeanFactoryPostProcessor
 * 处理bean的实例化
 * @see org.springframework.beans.factory.config.BeanPostProcessor
 * Bean的定义信息
 * @see org.springframework.beans.factory.config.BeanDefinition
 * lifecycle
 * @see org.springframework.beans.factory.BeanFactory
 * aop
 * @see org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
 *
 * 重要入口 & 流程：
 * @see org.springframework.context.support.AbstractApplicationContext#refresh()
 * @see org.springframework.beans.factory.support.DefaultListableBeanFactory
 * @see org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons()
 * @see org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean(java.lang.String, java.lang.Class, java.lang.Object[], boolean)
 *
 *
 *
 * util:
 * 反射util
 * org.springframework.util.ReflectionUtils
 */
public class Application {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("/a.xml");
        Aa a = applicationContext.getBean("aa", Aa.class);
        System.out.println(a.getName());
    }
}
